package com.wangxiaonan.wxwork.service;

import com.alibaba.fastjson.JSONObject;
import com.wangxiaonan.wxwork.domain.Appchat;
import java.util.List;

/**
 * 群聊会话服务
 *
 * @Author: wangxiaonan
 * @Date: 2018/8/22
 **/
public interface AppChatService {

    String POST_APP_CHAT_CREATE_URL = "https://qyapi.weixin.qq.com/cgi-bin/appchat/create?access_token=%s";
    String POST_APP_CHAT_UPDATE_URL = "https://qyapi.weixin.qq.com/cgi-bin/appchat/update?access_token=%s";
    String GET_APP_CHAT_GET_URL = "https://qyapi.weixin.qq.com/cgi-bin/appchat/get?access_token=%s&chatid=%s";
    String POST_APP_CHAT_SEND_URL = "https://qyapi.weixin.qq.com/cgi-bin/appchat/send?access_token=%s";

    /**
     * 创建群聊
     *
     * @param token 必须  调用接口凭证
     * @param jsonParam 必须  json消息体
     */
    JSONObject createAppChat(String token, String jsonParam);

    /**
     * 更新群聊
     *
     * @param token 必须  调用接口凭证
     * @param jsonParam 必须  json消息体
     */
    JSONObject updateAppChat(String token, String jsonParam);

    /**
     * 获取群聊<br/>
     * 包含名称，群主，成员信息
     *
     * @param token 必须  调用接口凭证
     * @param chatId 必须  群聊id
     */
    JSONObject getAppChat(String token, String chatId);

    /**
     * 推送群消息
     *
     * @param token 必须  调用接口凭证
     * @param jsonParam 必须  json消息体
     */
    JSONObject sendMessage(String token, String jsonParam);

    /* *************************************************** */

    /**
     * 数据库查询群聊信息
     *
     * @param chatId 必须  群聊ID
     */
    Appchat queryById(String chatId);

    /**
     * 数据库查询群聊信息列表
     *
     * @param agentId 必须  应用ID
     */
    List<Appchat> queryByAgentId(String agentId);

    int saveAppChat(Appchat appChat);

    JSONObject saveAndCreateAppChat(Appchat appChat, String token, String jsonParam);
}
